home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / CPP / WCLASS95.ZIP / VC15FU1.SCT < prev    next >
Encoding:
Text File  |  1995-04-19  |  6.4 KB  |  172 lines

  1. // Class: CLASS_NAME
  2.  
  3. //////////////////////////.cpp file/////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "TRUNCATE_EIGHT$CLASS_NAME$.h"                    
  6.  
  7. SELECT_WHEN ATTRIBUTE_IS_STATIC
  8. [ATTRIBUTE_TYPE CLASS_NAME$::$ATTRIBUTE_NAME = ATTRIBUTE_INITIAL_VALUE$; ]
  9.  
  10. // Functions for class CLASS_NAME
  11. [
  12. //  Function:     OPERATION_NAME
  13. //  Purpose:     OPERATION_COMMENT1
  14. //  Parameters: CPP_OPERATION_PARAMETERS
  15. //  Comments:     OPERATION_COMMENT2
  16. OPERATION_RETURN_TYPE CLASS_NAME::OPERATION_NAME(CPP_OPERATION_PARAMETERS) CPP_OPERATION_CONSTANT
  17. {
  18.   OPERATION_CODE
  19. }
  20.  
  21.             //Operator= Assignment Operator
  22.             //Commented Out code assigns pointers for 1:1 and 1:M associated object data members     
  23. CLASS_NAME& CLASS_NAME::operator= (const CLASS_NAME$& a$CLASS_NAME)
  24. { if (this == &a$CLASS_NAME) return *this;
  25.   int i = 0;         
  26. [  BASE_CLASS$::operator= (a$CLASS_NAME);]
  27. SELECT_WHEN ATTRIBUTE_IS_NORMAL
  28. [  ATTRIBUTE_NAME = a$CLASS_NAME$.$ATTRIBUTE_NAME;]
  29. [  AGGREGATION_ONE_NAME = a$CLASS_NAME$.$AGGREGATION_ONE_NAME;]
  30. [  //ASSOCIATION_ONE_NAME = a$CLASS_NAME$.$ASSOCIATION_ONE_NAME;]    
  31. [  
  32.     POSITION pos = AGGREGATION_MANY_NAME.GetHeadPosition();
  33.     AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS;
  34.     POSITION pos2 = a$CLASS_NAME.AGGREGATION_MANY_NAME.GetHeadPosition();
  35.     AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS$2;
  36.     while(pos)
  37.      {
  38.        next$AGGREGATION_MANY_CLASS = (AGGREGATION_MANY_CLASS *)AGGREGATION_MANY_NAME.GetNext(pos);
  39.        next$AGGREGATION_MANY_CLASS$2 = (AGGREGATION_MANY_CLASS *)a$CLASS_NAME.AGGREGATION_MANY_NAME.GetNext(pos2);
  40.        next$AGGREGATION_MANY_CLASS = next$AGGREGATION_MANY_CLASS$2;
  41.      }
  42. ]
  43.      pos = ASSOCIATION_MANY_NAME.GetHeadPosition();
  44.     ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS;
  45.     pos2 = a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetHeadPosition();
  46.     ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS$2;
  47.     while(pos)
  48.      {
  49.        next$ASSOCIATION_MANY_CLASS = (ASSOCIATION_MANY_CLASS *)ASSOCIATION_MANY_NAME.GetNext(pos);
  50.        next$ASSOCIATION_MANY_CLASS$2 = (ASSOCIATION_MANY_CLASS *)a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetNext(pos2);
  51.        next$ASSOCIATION_MANY_CLASS = next$ASSOCIATION_MANY_CLASS$2;
  52.      }
  53.  
  54. ]
  55.   return *this;                                                    
  56. }                    
  57.  
  58.             //Operator== Equality Operator
  59.             //Update for 1:M association object data members
  60. BOOL CLASS_NAME::operator== (const CLASS_NAME$& a$CLASS_NAME) const
  61.   BOOL bTest1;
  62.   BOOL bTest2 = TRUE;
  63.   bTest1 = [ (BASE_CLASS$::operator== (a$CLASS_NAME)) &&]
  64.             //Equality check for 1:1 aggregation part data members
  65. [ (AGGREGATION_ONE_NAME == a$CLASS_NAME$.$AGGREGATION_ONE_NAME) &&]
  66.             //Equality check for 1:M aggregation parts 
  67.             //Update for the correct number of aggregation part objects
  68. SELECT_WHEN ATTRIBUTE_IS_NORMAL
  69. [ (ATTRIBUTE_NAME == a$CLASS_NAME$.ATTRIBUTE_NAME) &DELETE_LAST_SYMBOL&DELETE_LAST_SYMBOL];
  70.                           
  71.                           
  72.    [  
  73.     POSITION pos = AGGREGATION_MANY_NAME.GetHeadPosition();
  74.     AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS;
  75.     POSITION pos2 = a$CLASS_NAME.AGGREGATION_MANY_NAME.GetHeadPosition();
  76.     AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS$2;
  77.     while(pos)
  78.      {
  79.        next$AGGREGATION_MANY_CLASS = (AGGREGATION_MANY_CLASS *)AGGREGATION_MANY_NAME.GetNext(pos);
  80.        next$AGGREGATION_MANY_CLASS$2 = (AGGREGATION_MANY_CLASS *)a$CLASS_NAME.AGGREGATION_MANY_NAME.GetNext(pos2);
  81.        bTest2 &= (next$AGGREGATION_MANY_CLASS == next$AGGREGATION_MANY_CLASS$2);
  82.      }
  83.    ]     
  84.    [
  85.     pos = ASSOCIATION_MANY_NAME.GetHeadPosition();
  86.     ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS;
  87.     pos2 = a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetHeadPosition();
  88.     ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS$2;
  89.     while(pos)
  90.      {
  91.        next$ASSOCIATION_MANY_CLASS = (ASSOCIATION_MANY_CLASS *)ASSOCIATION_MANY_NAME.GetNext(pos);
  92.        next$ASSOCIATION_MANY_CLASS$2 = (ASSOCIATION_MANY_CLASS *)a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetNext(pos2);
  93.        bTest2 &= (next$ASSOCIATION_MANY_CLASS == next$ASSOCIATION_MANY_CLASS$2);
  94.      }
  95.    ]
  96.                           
  97.  
  98.     return (bTest1 && bTest2);
  99. }            
  100.  
  101.             //Operator<< extraction for cout
  102. ostream& operator<< (ostream& os, CLASS_NAME$& a$CLASS_NAME)
  103. { int i = 0;
  104. [  os << (BASE_CLASS &) a$CLASS_NAME;]
  105.   os << "Object Attribute Values - Class CLASS_NAME" << endl;
  106. SELECT_WHEN ATTRIBUTE_IS_NORMAL
  107. [  os << "ATTRIBUTE_NAME: " << a$CLASS_NAME$.$ATTRIBUTE_NAME << endl;]
  108. SELECT_WHEN ATTRIBUTE_IS_STATIC
  109. [  os << "ATTRIBUTE_NAME: " << a$CLASS_NAME$.$ATTRIBUTE_NAME << endl;]
  110. [  os << "  AGGREGATION_ONE_NAME$: " << a$CLASS_NAME$.$AGGREGATION_ONE_NAME << endl;]
  111.  
  112. [  
  113.     POSITION pos = a$CLASS_NAME.AGGREGATION_MANY_NAME.GetHeadPosition();
  114.     AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS;
  115.     while(pos)
  116.      {
  117.        next$AGGREGATION_MANY_CLASS = (AGGREGATION_MANY_CLASS *)a$CLASS_NAME.AGGREGATION_MANY_NAME.GetNext(pos);
  118.        os << *next$AGGREGATION_MANY_CLASS;
  119.      }
  120. ]
  121.      pos = a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetHeadPosition();
  122.     ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS;
  123.     while(pos)
  124.      {
  125.        next$ASSOCIATION_MANY_CLASS = (ASSOCIATION_MANY_CLASS *)a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetNext(pos);
  126.        if (next$ASSOCIATION_MANY_CLASS != NULL) 
  127.               os << next$ASSOCIATION_MANY_CLASS;
  128.      }
  129.  
  130. ]
  131.  
  132.   return os;
  133. }            
  134.  
  135.             //Operator>> insertion for cin
  136. istream& operator>> (istream& is, CLASS_NAME$& a$CLASS_NAME)
  137. { int i = 0;
  138. [  is >> (BASE_CLASS &) a$CLASS_NAME;]
  139.   cout << "\nEnter Object Attribute Values or 0 - Class CLASS_NAME"; 
  140. SELECT_WHEN ATTRIBUTE_IS_NORMAL
  141. [  cout << "\nEnter ATTRIBUTE_NAME : " << endl;
  142.   is >> a$CLASS_NAME$.$ATTRIBUTE_NAME;]        
  143. [  is >> a$CLASS_NAME$.$AGGREGATION_ONE_NAME;]
  144. [  if (a$CLASS_NAME$.$ASSOCIATION_ONE_NAME != 0) is >> *$a$CLASS_NAME$.$ASSOCIATION_ONE_NAME ; ]
  145. [  
  146.     POSITION pos = a$CLASS_NAME.AGGREGATION_MANY_NAME.GetHeadPosition();
  147.     AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS;
  148.     while(pos)
  149.      {
  150.        next$AGGREGATION_MANY_CLASS = (AGGREGATION_MANY_CLASS *)a$CLASS_NAME.AGGREGATION_MANY_NAME.GetNext(pos);
  151.        is  >> *next$AGGREGATION_MANY_CLASS;
  152.      }
  153. ]
  154.      pos = a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetHeadPosition();
  155.     ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS;
  156.     while(pos)
  157.      {
  158.        next$ASSOCIATION_MANY_CLASS = (ASSOCIATION_MANY_CLASS *)a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetNext(pos);
  159.        if (next$ASSOCIATION_MANY_CLASS != NULL) 
  160.               is >> *next$ASSOCIATION_MANY_CLASS;
  161.      }
  162.  
  163. ]
  164.   return is;
  165. }                
  166.  
  167.